package ru.chaykin.primitives;

public class Circle {

	private float x = 0;
	private float y = 0;
	private float r = 0;
	
	public Circle(float x, float y, float r) {
		this.x = x;
		this.y = y;
		this.r = r;
	}
	
	public Circle() {}

	public float get_x() {
		return x;
	}
	
	public float get_y() {
		return y;
	}
	
	public float get_r() {
		return r;
	}
	
	public void reInit_xy(float x, float y) {
		this.x = x;
		this.y = y;
	}
	
	public void reInit_r(float r) {
		this.r = r;
	}
	
	/**
	 * Возвращает <code>true</code>, если данная окружность хотя бы частично лежит внутри переданной в параметре метода. 
	 * В противном случае возвращает <code>false</code> 
	 */
	public boolean in(Circle circle) {
		return Point.distance(circle.get_x(), circle.get_y(), x, y) - circle.get_r() < r;
	}
	
	public boolean equals (Circle circle) {
		return x == circle.x && y == circle.y && r == circle.r;
	}
}
